(function($){

	$.fn.size = function(){
	    return jQuery(this).get(0).options.length;
	};
	$.fn.getSelectedIndex = function(){
	    return jQuery(this).get(0).selectedIndex;
	};
	$.fn.getSelectedText = function(){
	    if(this.size() == 0)
	    {
	        return "下拉框中无选项";
	    }
	    else
	    {
	        var index = this.getSelectedIndex();      
	        return jQuery(this).get(0).options[index].text;
	    }
	};
	$.fn.getSelectedValue = function(){    
	    if(this.size() == 0)
	    {
	        return "下拉框中无选中值";
	    }
	    else
	    {
	        return jQuery(this).val();
	    }
	};
	$.fn.setSelectedValue = function(value){
	    jQuery(this).get(0).value = value;
	};
	$.fn.setSelectedText = function(text){
	    var isExist = false;
	    var count = this.size();
	    for(var i=0;i<count;i++)
	    {
	        if(jQuery(this).get(0).options[i].text == text)
	        {
	            jQuery(this).get(0).options[i].selected = true;
	            isExist = true;
	            break;
	        }
	    }
	    if(!isExist)
	    {
	        alert("下拉框中不存在该项");
	    }
	};
	$.fn.setSelectedIndex = function(index){
	    var count = this.size();    
	    if(index >= count || index < 0)
	    {
	        alert("选中项索引超出范围");
	    }
	    else
	    {
	        jQuery(this).get(0).selectedIndex = index;
	    }
	};
	//判断select项中是否存在值为value的项
	$.fn.isExistItem = function(value){
	    var isExist = false;
	    var count = this.size();
	    for(var i=0;i<count;i++)
	    {
	        if(jQuery(this).get(0).options[i].value == value)
	        {
	            isExist = true;
	            break;
	        }
	    }
	    return isExist;
	};
	//向select中添加一项，显示内容为text，值为value,如果该项值已存在，则提示
	$.fn.addOption = function(text,value){
	    if(this.isExistItem(value))
	    {
	        alert("待添加项的值已存在");
	    }
	    else
	    {
	        jQuery(this).get(0).options.add(new Option(text,value));
	    }
	};
	//删除select中值为value的项，如果该项不存在，则提示
	$.fn.removeItem = function(value){    
	    if(this.isExistItem(value))
	    {
	        var count = this.size();        
	        for(var i=0;i<count;i++)
	        {
	            if(jQuery(this).get(0).options[i].value == value)
	            {
	                jQuery(this).get(0).remove(i);
	                break;
	            }
	        }        
	    }
	    else
	    {
	        alert("待删除的项不存在!");
	    }
	};
	//删除select中指定索引的项
	$.fn.removeIndex = function(index){
	    var count = this.size();
	    if(index >= count || index < 0)
	    {
	        alert("待删除项索引超出范围");
	    }
	    else
	    {
	        jQuery(this).get(0).remove(index);
	    }
	};
	//删除select中选定的项
	$.fn.removeSelected = function(){
	    var index = this.getSelectedIndex();
	    this.removeIndex(index);
	};
	//清除select中的所有项
	$.fn.clearAll = function(){
	    jQuery(this).get(0).options.length = 0;
	};
	
	
	
	$.fn.selInit = function(){return $(this).html("<option>请选择</option>");};
	
	$.linkage = function(jsonDatas,links,selectd,init){
		if(init == true){
			for(var i= 0;i < links.length; i++){
				$("#" + links[i]).selInit();
			}
			
		}
		$.each(links,function(i,linkValue){
			$("#" + linkValue).change(function(){
				for(var j = i + 1; j < links.length; j++){
					$("#" + links[j]).selInit();
				}
				if(i == links.length - 1){//最后一级不要在处理
					return false;
				}
				var data = jsonDatas;
				//有问题的代码 bug
				for(var ii = 0; ii < i + 1; ii++){
					var text = $("#" + links[ii]  +" option:selected").text();
					$.each(data,function(key,linkValue){
						if(linkValue.name == text){
							data = linkValue.childs;
							return false;
						}
					});
				}
				
				$.each(data,function(key,value){
					if(selectd[i+1] == value.value){
						$("#" + links[i+1]).append("<option value='" + value.value + "' selected='selected'>" + value.name + "</option>");
						$("#" + links[i+1]).change();
					}else{
						$("#" + links[i+1]).append("<option value='" + value.value + "'>" + value.name + "</option>");
					}
					
				});
			});
		});
		//初始化第一级
		$.each(jsonDatas,function(key,data){
			if(selectd[0] == data.value){
				$("#" + links[0]).append("<option value='" + data.value + "' selected='selected'>" + data.name + "</option>");
				$("#" + links[0]).change();
			}else{
				$("#" + links[0]).append("<option value='" + data.value + "'>" + data.name + "</option>");
			}
		});
		
		if(selectd){
			for(var s= 0;s < 1; s++){
				//alert($("#" + links[s] + " option[value='BSS']").attr("value"));
				//alert($("#" + links[s] + " option[value='BSS']").text());
				//alert($("#" + links[s]).get(0).value);
				//$("#" + links[s]).setSelectedIndex(4);
				//$("#" + links[s]).change();
			}
		}
	};
})(jQuery);